home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 1.0 for Developers / QuickTime 1.0 for Developers.iso / Programming Stuff / Interfaces / Movies Interfaces / Movies.p < prev    next >
Text File  |  1991-09-11  |  39KB  |  1,267 lines

  1.  
  2. {
  3. Created: Wednesday, August 14, 1991 at 12:36 PM
  4.  Movies.p
  5.  Pascal Interface to the Macintosh Libraries
  6.  
  7.   Copyright Apple Computer, Inc. 1991
  8.   All rights reserved
  9. }
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT Movies;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingMovies}
  22. {$SETC UsingMovies := 1}
  23.  
  24. {$I+}
  25. {$SETC MoviesIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingQuickDraw}
  28. {$I $$Shell(PInterfaces)QuickDraw.p}
  29. {$ENDC}
  30. {$IFC UNDEFINED UsingAliases}
  31. {$I $$Shell(PInterfaces)Aliases.p}
  32. {$ENDC}
  33. {$IFC UNDEFINED UsingEvents}
  34. {$I $$Shell(PInterfaces)Events.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED UsingComponents}
  37. {$I $$Shell(PInterfaces)Components.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED UsingImageCompression}
  40. {$I $$Shell(PInterfaces)ImageCompression.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED UsingStandardFile}
  43. {$I $$Shell(PInterfaces)StandardFile.p}
  44. {$ENDC}
  45. {$SETC UsingIncludes := MoviesIncludes}
  46.  
  47. CONST
  48. gestaltQuickTime = 'qtim';
  49.  
  50. MovieFileType = 'MooV';
  51.  
  52. VideoMediaType = 'vide';
  53. SoundMediaType = 'soun';
  54.  
  55.  
  56. TYPE
  57. Movie = ^MovieRecord;
  58. MovieRecord = RECORD
  59.  data: ARRAY [0..0] OF LONGINT;
  60.  END;
  61.  
  62. Track = ^TrackRecord;
  63. TrackRecord = RECORD
  64.  data: ARRAY [0..0] OF LONGINT;
  65.  END;
  66.  
  67. Media = ^MediaRecord;
  68. MediaRecord = RECORD
  69.  data: ARRAY [0..0] OF LONGINT;
  70.  END;
  71.  
  72. UserData = ^UserDataRecord;
  73. UserDataRecord = RECORD
  74.  data: ARRAY [0..0] OF LONGINT;
  75.  END;
  76.  
  77. TrackEditState = ^TrackEditStateRecord;
  78. TrackEditStateRecord = RECORD
  79.  data: ARRAY [0..0] OF LONGINT;
  80.  END;
  81.  
  82. MovieEditState = ^MovieEditStateRecord;
  83. MovieEditStateRecord = RECORD
  84.  data: ARRAY [0..0] OF LONGINT;
  85.  END;
  86.  
  87.  
  88. TimeValue = LONGINT;
  89. TimeScale = LONGINT;
  90.  
  91. TimeBase = ^TimeBaseRecord;
  92. TimeBaseRecord = RECORD
  93.  data: ARRAY [0..0] OF LONGINT;
  94.  END;
  95.  
  96. QTCallBack = ^CallBackRecord;
  97. CallBackRecord = RECORD
  98.  data: ARRAY [0..0] OF LONGINT;
  99.  END;
  100.  
  101. Int64 = RECORD
  102.  hi: LONGINT;
  103.  lo: LONGINT;
  104.  END;
  105.  
  106. TimeRecord = RECORD
  107.  value: Int64;
  108.  scale: TimeScale;
  109.  base: TimeBase;
  110.  END;
  111.  
  112. PriorityType = RECORD
  113.  level: INTEGER;
  114.  percent: INTEGER;
  115.  END;
  116.  
  117. SampleDescriptionPtr = ^SampleDescription;
  118. SampleDescriptionHandle = ^SampleDescriptionPtr;
  119. SampleDescription = RECORD
  120.  descSize: LONGINT;
  121.  dataFormat: LONGINT;
  122.  END;
  123.  
  124. SoundDescriptionPtr = ^SoundDescription;
  125. SoundDescriptionHandle = ^SoundDescriptionPtr;
  126. SoundDescription = RECORD
  127.  descSize: LONGINT;
  128.  dataFormat: LONGINT;
  129.  resvd1: LONGINT;
  130.  resvd2: LONGINT;
  131.  version: INTEGER;
  132.  revlevel: INTEGER;
  133.  vendor: LONGINT;
  134.  numChannels: INTEGER;
  135.  sampleSize: INTEGER;
  136.  compressionID: INTEGER;
  137.  packetSize: INTEGER;
  138.  sampleRate: Fixed;
  139.  END;
  140.  
  141.  
  142.  
  143. CONST
  144.  
  145. { progress messages }
  146. movieProgressOpen = 0;
  147. movieProgressUpdatePercent = 1;
  148. movieProgressClose = 2;
  149.  
  150.  
  151. { progress operations }
  152. progressOpFlatten = 1;
  153. progressOpInsertTrackSegment = 2;
  154. progressOpInsertMovieSegment = 3;
  155. progressOpPaste = 4;
  156. progressOpAddMovieSelection = 5;
  157. progressOpCopy = 6;
  158. progressOpCut = 7;
  159. progressOpLoadMovieIntoRam = 8;
  160. progressOpLoadTrackIntoRam = 9;
  161. progressOpLoadMediaIntoRam = 10;
  162.  
  163. TYPE
  164. MovieProgressProcPtr = ProcPtr;
  165.  
  166. MovieRgnCoverProc = ProcPtr;
  167.  
  168. MediaInformationHandle = Handle;
  169. MediaHandler = ComponentInstance;
  170. DataHandler = ComponentInstance;
  171. HandlerError = ComponentResult;
  172. MovieController = ComponentInstance;
  173.  
  174. ErrorProcPtr = ProcPtr;
  175. MoviePreviewCallOutProc = ProcPtr;
  176.  
  177. CONST
  178. newMovieActive = $1;
  179. newMovieDontResolveDataRefs = $2;
  180. newMovieDontAskUnresolvedDataRefs = $4;
  181.  
  182. trackUsageInMovie = $2;
  183. trackUsageInPreview = $4;
  184. trackUsageInPoster = $8;
  185.  
  186. mediaSampleNotSync = 1;
  187.  
  188. nextTimeMediaSample = $1;
  189. nextTimeMediaEdit = $2;
  190. nextTimeTrackEdit = $4;
  191. nextTimeSyncSample = $8;
  192. nextTimeEdgeOK = $2000;
  193. nextTimeIgnoreActiveSegment = $4000;
  194.  
  195. createMovieFileDeleteCurFile = $40000000;
  196. createMovieFileDontCreateMovie = $20000000;
  197. createMovieFileDontOpenFile = $10000000;
  198.  
  199. flattenAddMovieToDataFork = $1;
  200. flattenActiveTracksOnly = $4;
  201. flattenDontInterleaveFlatten = $8;
  202.  
  203. movieScrapDontZeroScrap = $1;
  204. movieScrapOnlyPutMovie = $2;
  205.  
  206. hintsScrubMode = $1;
  207.  
  208. {  Initialization Routines  }
  209. FUNCTION EnterMovies: OSErr;
  210.  INLINE $303C,$1,$AAAA;
  211. PROCEDURE ExitMovies;
  212.  INLINE $303C,$2,$AAAA;
  213.  
  214.  
  215. {  error Routines  }
  216. FUNCTION GetMoviesError: OSErr;
  217.  INLINE $303C,$3,$AAAA;
  218. PROCEDURE ClearMoviesStickyError;
  219.  INLINE $303C,$DE,$AAAA;
  220. FUNCTION GetMoviesStickyError: OSErr;
  221.  INLINE $303C,$4,$AAAA;
  222.  
  223. PROCEDURE SetMoviesErrorProc(errProc: ErrorProcPtr;refcon: LONGINT);
  224.  INLINE $303C,$EF,$AAAA;
  225.  
  226. FUNCTION GetTrackStatus(t: Track): ComponentResult;
  227.  INLINE $303C,$172,$AAAA;
  228. FUNCTION GetMovieStatus(m: Movie;VAR firstProblemTrack: Track): ComponentResult;
  229.  INLINE $303C,$173,$AAAA;
  230.  
  231.  
  232. {  Playback Routines  }
  233. PROCEDURE MoviesTask(m: Movie;maxMilliSecToUse: LONGINT);
  234.  INLINE $303C,$5,$AAAA;
  235.  
  236. PROCEDURE StartMovie(m: Movie);
  237.  INLINE $303C,$B,$AAAA;
  238. PROCEDURE StopMovie(m: Movie);
  239.  INLINE $303C,$C,$AAAA;
  240. PROCEDURE GotoBeginningOfMovie(m: Movie);
  241.  INLINE $303C,$D,$AAAA;
  242. PROCEDURE GotoEndOfMovie(m: Movie);
  243.  INLINE $303C,$E,$AAAA;
  244. FUNCTION IsMovieDone(m: Movie): BOOLEAN;
  245.  INLINE $303C,$DD,$AAAA;
  246.  
  247. FUNCTION GetMoviePreviewMode(m: Movie): BOOLEAN;
  248.  INLINE $303C,$F,$AAAA;
  249. PROCEDURE SetMoviePreviewMode(m: Movie;usePreview: BOOLEAN);
  250.  INLINE $303C,$10,$AAAA;
  251. PROCEDURE ShowMoviePoster(m: Movie);
  252.  INLINE $303C,$11,$AAAA;
  253.  
  254. PROCEDURE GetMoviePriority(m: Movie;VAR priority: PriorityType);
  255.  INLINE $303C,$13,$AAAA;
  256. PROCEDURE SetMoviePriority(m: Movie;priority: PriorityType);
  257.  INLINE $303C,$14,$AAAA;
  258.  
  259. PROCEDURE GetMovieGWorld(m: Movie;VAR port: CGrafPtr;VAR gdh: GDHandle);
  260.  INLINE $303C,$15,$AAAA;
  261. PROCEDURE SetMovieGWorld(m: Movie;port: CGrafPtr;gdh: GDHandle);
  262.  INLINE $303C,$16,$AAAA;
  263.  
  264. FUNCTION PrerollMovie(m: Movie;time: TimeValue;Rate: Fixed): OSErr;
  265.  INLINE $303C,$6,$AAAA;
  266. FUNCTION LoadMovieIntoRam(m: Movie;time: TimeValue;duration: TimeValue;
  267.  flags: LONGINT): OSErr;
  268.  INLINE $303C,$7,$AAAA;
  269. FUNCTION LoadTrackIntoRam(t: Track;time: TimeValue;duration: TimeValue;
  270.  flags: LONGINT): OSErr;
  271.  INLINE $303C,$16E,$AAAA;
  272. FUNCTION LoadMediaIntoRam(m: Media;time: TimeValue;duration: TimeValue;
  273.  flags: LONGINT): OSErr;
  274.  INLINE $303C,$8,$AAAA;
  275.  
  276. PROCEDURE SetMovieActive(m: Movie;active: BOOLEAN);
  277.  INLINE $303C,$9,$AAAA;
  278. FUNCTION GetMovieActive(m: Movie): BOOLEAN;
  279.  INLINE $303C,$A,$AAAA;
  280.  
  281. PROCEDURE PlayMoviePreview(m: Movie;callOutProc: MoviePreviewCallOutProc;
  282.  refcon: LONGINT);
  283.  INLINE $303C,$F2,$AAAA;
  284.  
  285.  
  286. {  Movie PICT Routines  }
  287. FUNCTION GetMoviePict(m: Movie;time: TimeValue): PicHandle;
  288.  INLINE $303C,$1D,$AAAA;
  289. FUNCTION GetTrackPict(t: Track;time: TimeValue): PicHandle;
  290.  INLINE $303C,$1E,$AAAA;
  291.  
  292. FUNCTION GetMoviePosterPict(m: Movie): PicHandle;
  293.  INLINE $303C,$F7,$AAAA;
  294.  
  295.  
  296. {  movie TimeBase Routines  }
  297. FUNCTION GetMovieTimeBase(m: Movie): TimeBase;
  298.  INLINE $303C,$12,$AAAA;
  299.  
  300. PROCEDURE SetMovieMasterTimeBase(m: Movie;tb: TimeBase;slaveZero: TimeRecord);
  301.  INLINE $303C,$167,$AAAA;
  302. PROCEDURE SetMovieMasterClock(m: Movie;clockMeister: Component;slaveZero: TimeRecord);
  303.  INLINE $303C,$168,$AAAA;
  304.  
  305.  
  306. {  spatial movie Routines  }
  307. PROCEDURE GetMovieBox(m: Movie;VAR boxRect: Rect);
  308.  INLINE $303C,$F9,$AAAA;
  309. PROCEDURE SetMovieBox(m: Movie;boxRect: Rect);
  310.  INLINE $303C,$FA,$AAAA;
  311.  
  312.  
  313. {  movie display clip  }
  314. FUNCTION GetMovieDisplayClipRgn(m: Movie): RgnHandle;
  315.  INLINE $303C,$FC,$AAAA;
  316. PROCEDURE SetMovieDisplayClipRgn(m: Movie;theClip: RgnHandle);
  317.  INLINE $303C,$FD,$AAAA;
  318.  
  319.  
  320. {  movie src clip  }
  321. FUNCTION GetMovieSrcClipRgn(m: Movie): RgnHandle;
  322.  INLINE $303C,$100,$AAAA;
  323. PROCEDURE SetMovieSrcClipRgn(m: Movie;theClip: RgnHandle);
  324.  INLINE $303C,$101,$AAAA;
  325.  
  326.  
  327. {  track src clip  }
  328. FUNCTION GetTrackSrcClipRgn(t: Track): RgnHandle;
  329.  INLINE $303C,$102,$AAAA;
  330. PROCEDURE SetTrackSrcClipRgn(t: Track;theClip: RgnHandle);
  331.  INLINE $303C,$103,$AAAA;
  332.  
  333.  
  334. {  bounds in display space  }
  335. FUNCTION GetMovieDisplayBoundsRgn(m: Movie): RgnHandle;
  336.  INLINE $303C,$FB,$AAAA;
  337. FUNCTION GetTrackMovieDisplayBoundsRgn(t: Track): RgnHandle;
  338.  INLINE $303C,$112,$AAAA;
  339.  
  340.  
  341. {  bounds in movie space  }
  342. FUNCTION GetMovieSrcBoundsRgn(m: Movie): RgnHandle;
  343.  INLINE $303C,$FE,$AAAA;
  344. FUNCTION GetTrackMovieSrcBoundsRgn(t: Track): RgnHandle;
  345.  INLINE $303C,$FF,$AAAA;
  346.  
  347.  
  348. {  bounds in track space  }
  349. FUNCTION GetTrackSrcBoundsRgn(t: Track): RgnHandle;
  350.  INLINE $303C,$111,$AAAA;
  351.  
  352.  
  353. {  movie poster box  }
  354. PROCEDURE GetPosterBox(m: Movie;VAR boxRect: Rect);
  355.  INLINE $303C,$16F,$AAAA;
  356. PROCEDURE SetPosterBox(m: Movie;boxRect: Rect);
  357.  INLINE $303C,$170,$AAAA;
  358.  
  359.  
  360. {  movie/track bounds over a range of time  }
  361. FUNCTION GetMovieSegmentDisplayBoundsRgn(m: Movie;time: TimeValue;duration: TimeValue): RgnHandle;
  362.  INLINE $303C,$16C,$AAAA;
  363. FUNCTION GetTrackSegmentMovieDisplayBoundsRgn(t: Track;time: TimeValue;
  364.  duration: TimeValue): RgnHandle;
  365.  INLINE $303C,$16B,$AAAA;
  366.  
  367. PROCEDURE SetMovieCoverProcs(m: Movie;uncoverProc: MovieRgnCoverProc;coverProc: MovieRgnCoverProc;
  368.  refCon: LONGINT);
  369.  INLINE $303C,$179,$AAAA;
  370.  
  371.  
  372. {  mattes - always in track space  }
  373. FUNCTION GetTrackSrcMatte(t: Track): PixMapHandle;
  374.  INLINE $303C,$115,$AAAA;
  375. PROCEDURE SetTrackSrcMatte(t: Track;theMatte: PixMapHandle);
  376.  INLINE $303C,$116,$AAAA;
  377. PROCEDURE DisposeMatte(theMatte: PixMapHandle);
  378.  INLINE $303C,$14A,$AAAA;
  379.  
  380.  
  381. {  movie creation Routines  }
  382. FUNCTION NewMovieFromHandle(VAR m:Movie; h: Handle;newMovieFlags: INTEGER;VAR dataRefWasChanged: BOOLEAN): OSErr;
  383.  INLINE $303C,$F1,$AAAA;
  384. FUNCTION PutMovieIntoHandle(m: Movie;h: Handle): OSErr;
  385.  INLINE $303C,$22,$AAAA;
  386.  
  387. FUNCTION NewMovie(newMovieFlags: LONGINT): Movie;
  388.  INLINE $303C,$187,$AAAA;
  389. PROCEDURE DisposeMovie(m: Movie);
  390.  INLINE $303C,$23,$AAAA;
  391.  
  392.  
  393. {  Movie Routines  }
  394. FUNCTION GetMovieCreationTime(m: Movie): LONGINT;
  395.  INLINE $303C,$26,$AAAA;
  396. FUNCTION GetMovieModificationTime(m: Movie): LONGINT;
  397.  INLINE $303C,$27,$AAAA;
  398.  
  399. FUNCTION GetMovieTimeScale(m: Movie): TimeScale;
  400.  INLINE $303C,$29,$AAAA;
  401. PROCEDURE SetMovieTimeScale(m: Movie;timeScale: TimeScale);
  402.  INLINE $303C,$2A,$AAAA;
  403.  
  404. FUNCTION GetMovieDuration(m: Movie): TimeValue;
  405.  INLINE $303C,$2B,$AAAA;
  406.  
  407. FUNCTION GetMovieRate(m: Movie): Fixed;
  408.  INLINE $303C,$2C,$AAAA;
  409. PROCEDURE SetMovieRate(m: Movie;rate: Fixed);
  410.  INLINE $303C,$2D,$AAAA;
  411.  
  412. FUNCTION GetMoviePreferredRate(m: Movie): Fixed;
  413.  INLINE $303C,$F3,$AAAA;
  414. PROCEDURE SetMoviePreferredRate(m: Movie;rate: Fixed);
  415.  INLINE $303C,$F4,$AAAA;
  416.  
  417. FUNCTION GetMoviePreferredVolume(m: Movie): INTEGER;
  418.  INLINE $303C,$F5,$AAAA;
  419. PROCEDURE SetMoviePreferredVolume(m: Movie;volume: INTEGER);
  420.  INLINE $303C,$F6,$AAAA;
  421.  
  422. FUNCTION GetMovieVolume(m: Movie): INTEGER;
  423.  INLINE $303C,$2E,$AAAA;
  424. PROCEDURE SetMovieVolume(m: Movie;volume: INTEGER);
  425.  INLINE $303C,$2F,$AAAA;
  426.  
  427. PROCEDURE GetMovieMatrix(m: Movie;VAR matrix: MatrixRecord);
  428.  INLINE $303C,$31,$AAAA;
  429. PROCEDURE SetMovieMatrix(m: Movie;matrix: MatrixRecord);
  430.  INLINE $303C,$32,$AAAA;
  431.  
  432. PROCEDURE GetMoviePreviewTime(m: Movie;VAR previewTime: TimeValue;VAR previewDuration: TimeValue);
  433.  INLINE $303C,$33,$AAAA;
  434. PROCEDURE SetMoviePreviewTime(m: Movie;previewTime: TimeValue;previewDuration: TimeValue);
  435.  INLINE $303C,$34,$AAAA;
  436.  
  437. FUNCTION GetMoviePosterTime(m: Movie): TimeValue;
  438.  INLINE $303C,$35,$AAAA;
  439. PROCEDURE SetMoviePosterTime(m: Movie;posterTime: TimeValue);
  440.  INLINE $303C,$36,$AAAA;
  441.  
  442. PROCEDURE GetMovieSelection(m: Movie;VAR selectionTime: TimeValue;VAR selectionDuration: TimeValue);
  443.  INLINE $303C,$37,$AAAA;
  444. PROCEDURE SetMovieSelection(m: Movie;selectionTime: TimeValue;selectionDuration: TimeValue);
  445.  INLINE $303C,$38,$AAAA;
  446.  
  447. PROCEDURE SetMovieActiveSegment(m: Movie;startTime: TimeValue;duration: TimeValue);
  448.  INLINE $303C,$15C,$AAAA;
  449. PROCEDURE GetMovieActiveSegment(m: Movie;VAR startTime: TimeValue;VAR duration: TimeValue);
  450.  INLINE $303C,$15D,$AAAA;
  451.  
  452. FUNCTION GetMovieTime(m: Movie;VAR currentTime: TimeRecord): TimeValue;
  453.  INLINE $303C,$39,$AAAA;
  454. PROCEDURE SetMovieTime(m: Movie;newtime: TimeRecord);
  455.  INLINE $303C,$3C,$AAAA;
  456. PROCEDURE SetMovieTimeValue(m: Movie;newtime: TimeValue);
  457.  INLINE $303C,$3D,$AAAA;
  458.  
  459. FUNCTION GetMovieUserData(m: Movie): UserData;
  460.  INLINE $303C,$3E,$AAAA;
  461.  
  462. PROCEDURE SetMoviePlayHints(movie:Movie; flags:LONGINT; flagsMask:LONGINT );
  463.  INLINE $303C,$1A1,$AAAA;
  464.  
  465.  
  466. {  Movie/Track/Media finding Routines  }
  467. FUNCTION GetMovieTrackCount(m: Movie): LONGINT;
  468.  INLINE $303C,$3F,$AAAA;
  469. FUNCTION GetMovieTrack(m: Movie;trackID: LONGINT): Track;
  470.  INLINE $303C,$40,$AAAA;
  471.  
  472. FUNCTION GetMovieIndTrack(m: Movie;index: LONGINT): Track;
  473.  INLINE $303C,$117,$AAAA;
  474.  
  475. FUNCTION GetTrackID(t: Track): LONGINT;
  476.  INLINE $303C,$127,$AAAA;
  477.  
  478. FUNCTION GetTrackMovie(t: Track): Movie;
  479.  INLINE $303C,$D0,$AAAA;
  480.  
  481. FUNCTION GetTrackMedia(t: Track): Media;
  482.  INLINE $303C,$62,$AAAA;
  483. FUNCTION GetMediaTrack(m: Media): Track;
  484.  INLINE $303C,$C5,$AAAA;
  485.  
  486.  
  487. {  Track creation Routines  }
  488. FUNCTION NewMovieTrack(m: Movie;width: Fixed;height: Fixed;trackVolume: INTEGER): Track;
  489.  INLINE $303C,$188,$AAAA;
  490. PROCEDURE DisposeMovieTrack(t: Track);
  491.  INLINE $303C,$42,$AAAA;
  492.  
  493.  
  494. {  Track Routines  }
  495. FUNCTION GetTrackCreationTime(t: Track): LONGINT;
  496.  INLINE $303C,$43,$AAAA;
  497. FUNCTION GetTrackModificationTime(t: Track): LONGINT;
  498.  INLINE $303C,$44,$AAAA;
  499.  
  500. FUNCTION GetTrackEnabled(t: Track): BOOLEAN;
  501.  INLINE $303C,$45,$AAAA;
  502. PROCEDURE SetTrackEnabled(t: Track;isEnabled: BOOLEAN);
  503.  INLINE $303C,$46,$AAAA;
  504.  
  505. FUNCTION GetTrackUsage(t: Track): LONGINT;
  506.  INLINE $303C,$47,$AAAA;
  507. PROCEDURE SetTrackUsage(t: Track;usage: LONGINT);
  508.  INLINE $303C,$48,$AAAA;
  509.  
  510. FUNCTION GetTrackDuration(t: Track): TimeValue;
  511.  INLINE $303C,$4B,$AAAA;
  512.  
  513. FUNCTION GetTrackOffset(t: Track): TimeValue;
  514.  INLINE $303C,$4C,$AAAA;
  515. PROCEDURE SetTrackOffset(t: Track;offset: TimeValue);
  516.  INLINE $303C,$4D,$AAAA;
  517.  
  518. PROCEDURE GetTrackPriority(t: Track;VAR priority: PriorityType);
  519.  INLINE $303C,$4E,$AAAA;
  520. PROCEDURE SetTrackPriority(t: Track;priority: PriorityType);
  521.  INLINE $303C,$4F,$AAAA;
  522.  
  523. FUNCTION GetTrackLayer(t: Track): INTEGER;
  524.  INLINE $303C,$50,$AAAA;
  525. PROCEDURE SetTrackLayer(t: Track;layer: INTEGER);
  526.  INLINE $303C,$51,$AAAA;
  527.  
  528. FUNCTION GetTrackAlternate(t: Track): Track;
  529.  INLINE $303C,$52,$AAAA;
  530. PROCEDURE SetTrackAlternate(t: Track;alternateT: Track);
  531.  INLINE $303C,$53,$AAAA;
  532.  
  533. FUNCTION GetTrackVolume(t: Track): INTEGER;
  534.  INLINE $303C,$54,$AAAA;
  535. PROCEDURE SetTrackVolume(t: Track;volume: INTEGER);
  536.  INLINE $303C,$55,$AAAA;
  537.  
  538. PROCEDURE GetTrackMatrix(t: Track;VAR matrix: MatrixRecord);
  539.  INLINE $303C,$56,$AAAA;
  540. PROCEDURE SetTrackMatrix(t: Track;matrix: MatrixRecord);
  541.  INLINE $303C,$57,$AAAA;
  542.  
  543. PROCEDURE GetTrackDimensions(t: Track;VAR width: Fixed;VAR height: Fixed);
  544.  INLINE $303C,$5D,$AAAA;
  545. PROCEDURE SetTrackDimensions(t: Track;width: Fixed;height: Fixed);
  546.  INLINE $303C,$5E,$AAAA;
  547.  
  548. FUNCTION GetTrackUserData(t: Track): UserData;
  549.  INLINE $303C,$5F,$AAAA;
  550.  
  551.  
  552. {  Media creation Routines  }
  553. FUNCTION NewTrackMedia(t: Track;mediaType: OSType;timeScale: TimeScale;
  554.  dataRef: Handle;dataRefType: OSType): Media;
  555.  INLINE $303C,$18E,$AAAA;
  556. PROCEDURE DisposeTrackMedia(m: Media);
  557.  INLINE $303C,$61,$AAAA;
  558.  
  559.  
  560. {  Media Routines  }
  561. FUNCTION GetMediaCreationTime(m: Media): LONGINT;
  562.  INLINE $303C,$66,$AAAA;
  563. FUNCTION GetMediaModificationTime(m: Media): LONGINT;
  564.  INLINE $303C,$67,$AAAA;
  565.  
  566. FUNCTION GetMediaTimeScale(m: Media): TimeScale;
  567.  INLINE $303C,$68,$AAAA;
  568. PROCEDURE SetMediaTimeScale(m: Media;timeScale: TimeScale);
  569.  INLINE $303C,$69,$AAAA;
  570.  
  571. FUNCTION GetMediaDuration(m: Media): TimeValue;
  572.  INLINE $303C,$6A,$AAAA;
  573.  
  574. FUNCTION GetMediaLanguage(m: Media): INTEGER;
  575.  INLINE $303C,$6B,$AAAA;
  576. PROCEDURE SetMediaLanguage(m: Media;language: INTEGER);
  577.  INLINE $303C,$6C,$AAAA;
  578.  
  579. FUNCTION GetMediaQuality(m: Media): INTEGER;
  580.  INLINE $303C,$6D,$AAAA;
  581. PROCEDURE SetMediaQuality(m: Media;quality: INTEGER);
  582.  INLINE $303C,$6E,$AAAA;
  583.  
  584. FUNCTION GetMediaUserData(m: Media): UserData;
  585.  INLINE $303C,$70,$AAAA;
  586.  
  587.  
  588. PROCEDURE SetMediaPlayHints( movie:Movie; flags:LONGINT; flagsMask:LONGINT );
  589.  INLINE $303C,$1A2,$AAAA;
  590.  
  591. {  Media Handler Routines  }
  592. FUNCTION GetMediaHandler(m: Media): MediaHandler;
  593.  INLINE $303C,$71,$AAAA;
  594. FUNCTION SetMediaHandler(m: Media;mH: MediaHandler): OSErr;
  595.  INLINE $303C,$190,$AAAA;
  596.  
  597. PROCEDURE GetMediaHandlerDescription(m: Media;VAR mediaType: OSType;originalName: Str255;
  598.  VAR originalManufacturer: OSType);
  599.  INLINE $303C,$6F,$AAAA;
  600.  
  601.  
  602. CONST
  603. dataRefSelfReference = 1;
  604. dataRefWasNotResolved = 2;
  605.  
  606.  
  607. {  Media dataRef Routines  }
  608. FUNCTION GetMediaDataRef(m: Media;index: INTEGER;VAR dataRef: Handle;VAR dataRefType: OSType;
  609.  VAR dataRefAttributes: LONGINT): OSErr;
  610.  INLINE $303C,$197,$AAAA;
  611. FUNCTION AddMediaDataRef(m: Media;VAR index: INTEGER;dataRef: Handle;dataRefType: OSType): OSErr;
  612.  INLINE $303C,$198,$AAAA;
  613.  
  614. FUNCTION GetMediaDataRefCount(m: Media;VAR count: INTEGER): OSErr;
  615.  INLINE $303C,$199,$AAAA;
  616.  
  617.  
  618. {  Media data handler Routines  }
  619. FUNCTION GetMediaDataHandler(m: Media;index: INTEGER): DataHandler;
  620.  INLINE $303C,$19F,$AAAA;
  621. FUNCTION SetMediaDataHandler(m: Media;index: INTEGER; dataHandler: DataHandler): OSErr;
  622.  INLINE $303C,$1A0,$AAAA;
  623.  
  624. PROCEDURE GetMediaDataHandlerDescription(m: Media;index: INTEGER;VAR dhType: OSType;
  625.     creatorName: Str255;VAR creatorManufacturer: OSType);
  626.     INLINE $303C,$19E,$AAAA;
  627.  
  628. {  Media sample Routines  }
  629. FUNCTION GetMediaSampleDescriptionCount(m: Media): LONGINT;
  630.  INLINE $303C,$77,$AAAA;
  631. PROCEDURE GetMediaSampleDescription(m: Media;index: LONGINT;descH: SampleDescriptionHandle);
  632.  INLINE $303C,$78,$AAAA;
  633. FUNCTION GetMediaSampleCount(m: Media): LONGINT;
  634.  INLINE $303C,$79,$AAAA;
  635. PROCEDURE SampleNumToMediaTime(m: Media;logicalSampleNum: LONGINT;VAR sampleTime: TimeValue;
  636.  VAR sampleDuration: TimeValue);
  637.  INLINE $303C,$7A,$AAAA;
  638. PROCEDURE MediaTimeToSampleNum(m: Media;time: TimeValue;VAR sampleNum: LONGINT;
  639.  VAR sampleTime: TimeValue;VAR sampleDuration: TimeValue);
  640.  INLINE $303C,$7B,$AAAA;
  641.  
  642. FUNCTION AddMediaSample(m: Media;dataIn: Handle;inOffset: LONGINT;size: LONGINT;
  643.  durationPerSample: TimeValue;sampleDescriptionH: SampleDescriptionHandle;
  644.  numberOfSamples: LONGINT;sampleFlags: INTEGER;VAR sampleTime: TimeValue): OSErr;
  645.  INLINE $303C,$7C,$AAAA;
  646. FUNCTION AddMediaSampleReference(m: Media;dataOffset: LONGINT;size: LONGINT;
  647.  durationPerSample: TimeValue;sampleDescriptionH: SampleDescriptionHandle;
  648.  numberOfSamples: LONGINT;sampleFlags: INTEGER;VAR sampleTime: TimeValue): OSErr;
  649.  INLINE $303C,$7D,$AAAA;
  650. FUNCTION GetMediaSample(m: Media;dataOut: Handle;maxSizeToGrow: LONGINT;
  651.  VAR size: LONGINT;time: TimeValue;VAR sampleTime: TimeValue;VAR durationPerSample: TimeValue;
  652.  sampleDescriptionH: SampleDescriptionHandle;VAR sampleDescriptionIndex: LONGINT;
  653.  maxNumberOfSamples: LONGINT;VAR numberOfSamples: LONGINT;VAR sampleFlags: INTEGER): OSErr;
  654.  INLINE $303C,$7E,$AAAA;
  655. FUNCTION GetMediaSampleReference(m: Media;VAR dataOffset: LONGINT;VAR size: LONGINT;
  656.  time: TimeValue;VAR sampleTime: TimeValue;VAR durationPerSample: TimeValue;
  657.  sampleDescriptionH: SampleDescriptionHandle;VAR sampleDescriptionIndex: LONGINT;
  658.  maxNumberOfSamples: LONGINT;VAR numberOfSamples: LONGINT;VAR sampleFlags: INTEGER): OSErr;
  659.  INLINE $303C,$7F,$AAAA;
  660. PROCEDURE SetPreferredMediaChunkSize(m: Media;minChunkSize: LONGINT;maxChunkSize: LONGINT;
  661.  padSize: LONGINT);
  662.  INLINE $303C,$80,$AAAA;
  663.  
  664.  
  665. {  High level editing Routines  }
  666. FUNCTION CutMovieSelection(m: Movie): Movie;
  667.  INLINE $303C,$8D,$AAAA;
  668. FUNCTION CopyMovieSelection(m: Movie): Movie;
  669.  INLINE $303C,$8E,$AAAA;
  670. PROCEDURE PasteMovieSelection(m: Movie;src: Movie);
  671.  INLINE $303C,$8F,$AAAA;
  672. PROCEDURE AddMovieSelection(m: Movie;src: Movie);
  673.  INLINE $303C,$152,$AAAA;
  674. PROCEDURE ClearMovieSelection(m: Movie);
  675.  INLINE $303C,$E1,$AAAA;
  676.  
  677.  
  678. {  Middle-level Editing Routines  }
  679. FUNCTION InsertTrackSegment(srcTrack: Track;dstTrack: Track;srcIn: TimeValue;
  680.  srcDuration: TimeValue;dstIn: TimeValue): OSErr;
  681.  INLINE $303C,$85,$AAAA;
  682. FUNCTION InsertMovieSegment(srcMovie: Movie;dstMovie: Movie;srcIn: TimeValue;
  683.  srcDuration: TimeValue;dstIn: TimeValue): OSErr;
  684.  INLINE $303C,$86,$AAAA;
  685. FUNCTION InsertEmptyTrackSegment(dstTrack: Track;dstIn: TimeValue;dstDuration: TimeValue): OSErr;
  686.  INLINE $303C,$87,$AAAA;
  687. FUNCTION InsertEmptyMovieSegment(dstMovie: Movie;dstIn: TimeValue;dstDuration: TimeValue): OSErr;
  688.  INLINE $303C,$88,$AAAA;
  689. FUNCTION DeleteTrackSegment(t: Track;dstIn: TimeValue;duration: TimeValue): OSErr;
  690.  INLINE $303C,$89,$AAAA;
  691. FUNCTION DeleteMovieSegment(m: Movie;dstIn: TimeValue;duration: TimeValue): OSErr;
  692.  INLINE $303C,$8A,$AAAA;
  693. FUNCTION ScaleTrackSegment(t: Track;dstIn: TimeValue;oldDuration: TimeValue;
  694.  newDuration: TimeValue): OSErr;
  695.  INLINE $303C,$8B,$AAAA;
  696. FUNCTION ScaleMovieSegment(m: Movie;dstIn: TimeValue;oldDuration: TimeValue;
  697.  newDuration: TimeValue): OSErr;
  698.  INLINE $303C,$8C,$AAAA;
  699.  
  700. FUNCTION CopyTrackSettings(srcTrack: Track;dstTrack: Track): OSErr;
  701.  INLINE $303C,$153,$AAAA;
  702. FUNCTION CopyMovieSettings(srcMovie: Movie;dstMovie: Movie): OSErr;
  703.  INLINE $303C,$154,$AAAA;
  704.  
  705.  
  706. {  low-level Editing Routines  }
  707. FUNCTION InsertMediaIntoTrack(t: Track;trackStart: TimeValue;mediaTime: TimeValue;
  708.  mediaDuration: TimeValue;mediaRate: Fixed): OSErr;
  709.  INLINE $303C,$183,$AAAA;
  710.  
  711. FUNCTION BeginMediaEdits(m: Media): OSErr;
  712.  INLINE $303C,$72,$AAAA;
  713. FUNCTION EndMediaEdits(m: Media): OSErr;
  714.  INLINE $303C,$73,$AAAA;
  715.  
  716.  
  717. {  movie & track edit state Routines  }
  718. FUNCTION NewMovieEditState(m: Movie): MovieEditState;
  719.  INLINE $303C,$104,$AAAA;
  720. FUNCTION UseMovieEditState(m: Movie;toState: MovieEditState): OSErr;
  721.  INLINE $303C,$105,$AAAA;
  722. FUNCTION DisposeMovieEditState(state: MovieEditState): OSErr;
  723.  INLINE $303C,$106,$AAAA;
  724.  
  725. FUNCTION NewTrackEditState(t: Track): TrackEditState;
  726.  INLINE $303C,$107,$AAAA;
  727. FUNCTION UseTrackEditState(t: Track;state: TrackEditState): OSErr;
  728.  INLINE $303C,$108,$AAAA;
  729. FUNCTION DisposeTrackEditState(state: TrackEditState): OSErr;
  730.  INLINE $303C,$109,$AAAA;
  731.  
  732.  
  733. {  Miscellaneous Routines  }
  734. FUNCTION TrackTimeToMediaTime(value: TimeValue;t: Track): TimeValue;
  735.  INLINE $303C,$96,$AAAA;
  736.  
  737. FUNCTION GetMovieDataSize(m: Movie;startTime: TimeValue;duration: TimeValue): LONGINT;
  738.  INLINE $303C,$98,$AAAA;
  739. FUNCTION GetTrackDataSize(t: Track;startTime: TimeValue;duration: TimeValue): LONGINT;
  740.  INLINE $303C,$149,$AAAA;
  741. FUNCTION GetMediaDataSize(m: Media;startTime: TimeValue;duration: TimeValue): LONGINT;
  742.  INLINE $303C,$99,$AAAA;
  743.  
  744. FUNCTION PtInMovie(m: Movie;pt: Point): BOOLEAN;
  745.  INLINE $303C,$9A,$AAAA;
  746. FUNCTION PtInTrack(t: Track;pt: Point): BOOLEAN;
  747.  INLINE $303C,$9B,$AAAA;
  748.  
  749. FUNCTION UpdateMovie(m: Movie): OSErr;
  750.  INLINE $303C,$1F,$AAAA;
  751.  
  752.  
  753. {  Alternate Group Selection Routines  }
  754. PROCEDURE SetMovieLanguage(m: Movie;language: LONGINT);
  755.  INLINE $303C,$9C,$AAAA;
  756.  
  757. PROCEDURE SetAutoTrackAlternatesEnabled(m: Movie;enable: BOOLEAN);
  758.  INLINE $303C,$15E,$AAAA;
  759. PROCEDURE SelectMovieAlternates(m: Movie);
  760.  INLINE $303C,$15F,$AAAA;
  761.  
  762.  
  763. {  UserData Routines  }
  764. FUNCTION GetUserData(u: UserData;data: Handle;pType: LONGINT;index: LONGINT): OSErr;
  765.  INLINE $303C,$9E,$AAAA;
  766. FUNCTION AddUserData(u: UserData;data: Handle;pType: LONGINT): OSErr;
  767.  INLINE $303C,$9F,$AAAA;
  768. FUNCTION RemoveUserData(u: UserData;pType: LONGINT;index: LONGINT): OSErr;
  769.  INLINE $303C,$A0,$AAAA;
  770. FUNCTION CountUserDataType(userDataH: UserData;pType: LONGINT): INTEGER;
  771.  INLINE $303C,$14B,$AAAA;
  772. FUNCTION AddUserDataText(u: UserData;data: Handle;pType: LONGINT;index: LONGINT;
  773.  itlRegionTag: INTEGER): OSErr;
  774.  INLINE $303C,$14C,$AAAA;
  775. FUNCTION GetUserDataText(u: UserData;data: Handle;pType: LONGINT;index: LONGINT;
  776.  itlRegionTag: INTEGER): OSErr;
  777.  INLINE $303C,$14D,$AAAA;
  778. FUNCTION RemoveUserDataText(u: UserData;pType: LONGINT;index: LONGINT;itlRegionTag: INTEGER): OSErr;
  779.  INLINE $303C,$14E,$AAAA;
  780.  
  781.  
  782. {  interesting time Routines  }
  783. PROCEDURE GetMediaNextInterestingTime(m: Media;interestingTimeFlags: INTEGER;
  784.  time: TimeValue;rate: Fixed;VAR interestingTime: TimeValue;VAR interestingDuration: TimeValue);
  785.  INLINE $303C,$16D,$AAAA;
  786. PROCEDURE GetTrackNextInterestingTime(t: Track;interestingTimeFlags: INTEGER;
  787.  time: TimeValue;rate: Fixed;VAR interestingTime: TimeValue;VAR interestingDuration: TimeValue);
  788.  INLINE $303C,$E2,$AAAA;
  789. PROCEDURE GetMovieNextInterestingTime(m: Movie;interestingTimeFlags: INTEGER;
  790.  numMediaTypes: INTEGER; whichMediaTypes: OSTypePtr;time: TimeValue;rate: Fixed;
  791.  VAR interestingTime: TimeValue;VAR interestingDuration: TimeValue);
  792.  INLINE $303C,$10E,$AAAA;
  793.  
  794.  
  795. {  movie file Routines  }
  796. FUNCTION CreateMovieFile(fileSpec: FSSpec;creator: OSType;scriptTag: ScriptCode;
  797.  createMovieFileFlags: LONGINT;VAR resRefNum: INTEGER;VAR newMovie: Movie): OSErr;
  798.  INLINE $303C,$191,$AAAA;
  799. FUNCTION DeleteMovieFile(fileSpec: FSSpec): OSErr;
  800.  INLINE $303C,$175,$AAAA;
  801.  
  802. FUNCTION OpenMovieFile(fileSpec: FSSpec;VAR resRefNum: INTEGER;perms: SignedByte): OSErr;
  803.  INLINE $303C,$192,$AAAA;
  804. FUNCTION CloseMovieFile(resRefNum: INTEGER): OSErr;
  805.  INLINE $303C,$D5,$AAAA;
  806.  
  807. CONST
  808. movieInDataForkResID = -1;    { magic res ID }
  809.  
  810.  
  811. FUNCTION NewMovieFromFile(VAR m: Movie;resRefNum: INTEGER;VAR resId: INTEGER;
  812.  resName: STR255;newMovieFlags: INTEGER;VAR dataRefWasChanged: BOOLEAN): OSErr;
  813.  INLINE $303C,$F0,$AAAA;
  814.  
  815. FUNCTION AddMovieResource(m: Movie;resRefNum: INTEGER;VAR resId: INTEGER;
  816.  resName: STR255): OSErr;
  817.  INLINE $303C,$D7,$AAAA;
  818. FUNCTION RemoveMovieResource(resRefNum: INTEGER;resId: INTEGER): OSErr;
  819.  INLINE $303C,$176,$AAAA;
  820. FUNCTION UpdateMovieResource(m: Movie;resRefNum: INTEGER;resId: INTEGER;
  821.  resName: STR255): OSErr;
  822.  INLINE $303C,$D8,$AAAA;
  823.  
  824. FUNCTION HasMovieChanged(m: Movie): BOOLEAN;
  825.  INLINE $303C,$D9,$AAAA;
  826. PROCEDURE ClearMovieChanged(m: Movie);
  827.  INLINE $303C,$113,$AAAA;
  828.  
  829. PROCEDURE FlattenMovie(m: Movie;movieFlattenFlags: LONGINT;theFile: FSSpec;
  830.  creator: OSType;scriptTag: ScriptCode;createMovieFileFlags: LONGINT;VAR resId: INTEGER;
  831.  resName: STR255);
  832.  INLINE $303C,$19B,$AAAA;
  833. FUNCTION FlattenMovieData(m: Movie;movieFlattenFlags: LONGINT;theFile: FSSpec;
  834.  creator: OSType;scriptTag: ScriptCode;createMovieFileFlags: LONGINT): Movie;
  835.  INLINE $303C,$19C,$AAAA;
  836. PROCEDURE SetMovieProgressProc(m: Movie;p: MovieProgressProcPtr;refCon: LONGINT);
  837.  INLINE $303C,$19A,$AAAA;
  838.  
  839. FUNCTION PutMovieOnScrap(m: Movie;movieScrapFlags: LONGINT): OSErr;
  840.  INLINE $303C,$18C,$AAAA;
  841. FUNCTION NewMovieFromScrap(newMovieFlags: LONGINT): Movie;
  842.  INLINE $303C,$18D,$AAAA;
  843.  
  844.  
  845. {  Video Media Routines  }
  846. FUNCTION GetVideoMediaGraphicsMode(mh: MediaHandler;VAR graphicsMode: LONGINT;
  847.  VAR opColor: RGBColor): HandlerError;
  848.  INLINE $2F3C,$8,$101,$7000,$A82A;
  849. FUNCTION SetVideoMediaGraphicsMode(mh: MediaHandler;graphicsMode: LONGINT;
  850.  opColor: RGBColor): HandlerError;
  851.  INLINE $2F3C,$8,$102,$7000,$A82A;
  852.  
  853.  
  854. {  Sound Media Routines  }
  855. FUNCTION GetSoundMediaBalance(mh: MediaHandler;VAR balance: INTEGER): HandlerError;
  856.  INLINE $2F3C,$4,$101,$7000,$A82A;
  857. FUNCTION SetSoundMediaBalance(mh: MediaHandler;balance: INTEGER): HandlerError;
  858.  INLINE $2F3C,$2,$102,$7000,$A82A;
  859.  
  860.  
  861. CONST
  862. { Dialog box IDs for previewing }
  863.  spGetDlgID_Sys6 = -3998;
  864.  spGetDlgID_Sys7 = -6039;
  865. { Item numbers for the Previewing Dialog Boxes }
  866.  spItemReserved = 10;
  867.  spItemPreviewArea = 11;
  868.  spItemPreviewStatText = 12;
  869.  spItemVertDividerPict = 13;
  870.  spItemFileInfoField = 14;
  871.  spItemCreatePreviewButton = 15;
  872.  spFirstPreviewItemNumber = spItemPreviewArea;
  873.  spLastPreviewItemNumber = spItemCreatePreviewButton;
  874.  
  875. PROCEDURE StandardGetFilePreview(fileFilter : FileFilterProcPtr; numTypes:INTEGER;
  876.  typeList:SFTypeList; VAR reply:StandardFileReply);
  877.  INLINE $3F3C,$0009,$A9EA;
  878. PROCEDURE CustomGetFilePreview(fileFilter:FileFilterYDProcPtr;numTypes: INTEGER;
  879.  typeList:SFTypeList; VAR reply:StandardFileReply; dlgID:INTEGER; where:Point;
  880.  dlgHook:DlgHookYDProcPtr; filterProc:ModalFilterYDProcPtr; VAR activeList:INTEGER;
  881.  activateProc:ActivateYDProcPtr; yourDataPtr:UNIV Ptr);
  882.  INLINE $3F3C,$000A,$A9EA;
  883.  
  884. CONST 
  885. couldNotResolveDataRef = -2000;
  886. badImageDescription = -2001;
  887. badPublicMovieAtom = -2002;
  888. cantFindHandler = -2003;
  889. cantOpenHandler = -2004;
  890. badComponentType = -2005;
  891. noMediaHandler = -2006;
  892. noDataHandler = -2007;
  893. invalidMedia = -2008;
  894. invalidTrack = -2009;
  895. invalidMovie = -2010;
  896. invalidSampleTable = -2011;
  897. invalidDataRef = -2012;
  898. invalidHandler = -2013;
  899. invalidDuration = -2014;
  900. invalidTime = -2015;
  901. cantPutPublicMovieAtom = -2016;
  902. badEditList = -2017;
  903. mediaTypesDontMatch = -2018;
  904. progressProcAborted = -2019;
  905. movieToolboxUnitialized = -2020;
  906. wfFileNotFound = -2021;
  907. cantCreateSingleForkFile = -2022;
  908. invalidEditState = -2023;
  909. nonMatchingEditState = -2024;
  910. staleEditState = -2025;
  911. userDataItemNotFound = -2026;
  912. maxSizeToGrowTooSmall = -2027;
  913. badTrackIndex = -2028;
  914. trackIDNotFound = -2029;
  915. trackNotInMovie = -2030;
  916. timeNotInTrack = -2031;
  917. timeNotInMedia = -2032;
  918. badEditIndex = -2033;
  919. internalQuickTimeError = -2034;
  920. cantEnableTrack = -2035;
  921. invalidRect = -2036;
  922. invalidSampleNum = -2037;
  923. invalidChunkNum = -2038;
  924. invalidSampleDescIndex = -2039;
  925. invalidChunkCache = -2040;
  926. invalidSampleDescription = -2041;
  927.  
  928. { this should probably be in its own range for data handlers }
  929. dataNotOpenForRead = -2042;
  930. dataNotOpenForWrite = -2043;
  931. dataAlreadyOpenForWrite = -2044;
  932. dataAlreadyClosed = -2045;
  933. endOfDataReached = -2046;
  934. dataNoDataRef = -2047;
  935.  
  936. { private errors }
  937. noMovieInDataFork = -2048;    { this is a private error }
  938.  
  939. invalidDataRefContainer = -2049;
  940. badDataRefIndex = -2050;
  941.  
  942. loopTimeBase = 1;
  943. TYPE
  944. { TimeBase Routines }
  945. TimeBaseFlags = CHAR;
  946.  
  947. CONST
  948. triggerTimeFwd = $0001;        { when curTime exceeds triggerTime going forward }
  949. triggerTimeBwd = $0002;        { when curTime exceeds triggerTime going backwards }
  950. triggerTimeEither = $0003;    { when curTime exceeds triggerTime going either direction }
  951. triggerRateLT = $0004;        { when rate changes to less than trigger value }
  952. triggerRateGT = $0008;        { when rate changes to greater than trigger value }
  953. triggerRateEqual = $0010;    { when rate changes to equal trigger value }
  954. triggerRateLTE = $0014;
  955. triggerRateGTE = $0018;
  956. triggerRateNotEqual = $001C;
  957. triggerRateChange = 0;
  958. timeBaseBeforeStartTime = 1;
  959. timeBaseAfterStopTime = 2;
  960. callBackAtTime = 1;
  961. callBackAtRate = 2;
  962. callBackAtTimeJump = 3;
  963. callBackAtInterrupt = $8000;
  964.  
  965. TYPE
  966. QTCallBackProc = ProcPtr;
  967.  
  968. CONST
  969. qtcbNeedsRateChanges = 1;
  970. qtcbNeedsTimeChanges = 2;
  971.  
  972. TYPE
  973. { CallBack equates }
  974. QTCallBackHeader = RECORD
  975.  callBackFlags: LONGINT;
  976.  reserved1: LONGINT;
  977.  qtPrivate: ARRAY [0..39] OF Byte;
  978.  END;
  979.  
  980.  
  981.  
  982. {  TimeBase Routines  }
  983. FUNCTION NewTimeBase: TimeBase;
  984.  INLINE $303C,$A5,$AAAA;
  985. PROCEDURE DisposeTimeBase(tb: TimeBase);
  986.  INLINE $303C,$B6,$AAAA;
  987.  
  988. FUNCTION GetTimeBaseTime(tb: TimeBase;s: TimeScale;VAR out: TimeRecord): TimeValue;
  989.  INLINE $303C,$A6,$AAAA;
  990. PROCEDURE SetTimeBaseTime(tb: TimeBase;tr: TimeRecord);
  991.  INLINE $303C,$A7,$AAAA;
  992. PROCEDURE SetTimeBaseValue(tb: TimeBase;t: TimeValue;s: TimeScale);
  993.  INLINE $303C,$A8,$AAAA;
  994.  
  995. FUNCTION GetTimeBaseRate(tb: TimeBase): Fixed;
  996.  INLINE $303C,$A9,$AAAA;
  997. PROCEDURE SetTimeBaseRate(tb: TimeBase;r: Fixed);
  998.  INLINE $303C,$AA,$AAAA;
  999.  
  1000. FUNCTION GetTimeBaseStartTime(tb: TimeBase;s: TimeScale;VAR out: TimeRecord): TimeValue;
  1001.  INLINE $303C,$AB,$AAAA;
  1002. PROCEDURE SetTimeBaseStartTime(tb: TimeBase;tr: TimeRecord);
  1003.  INLINE $303C,$AC,$AAAA;
  1004. FUNCTION GetTimeBaseStopTime(tb: TimeBase;s: TimeScale;VAR out: TimeRecord): TimeValue;
  1005.  INLINE $303C,$AD,$AAAA;
  1006. PROCEDURE SetTimeBaseStopTime(tb: TimeBase;tr: TimeRecord);
  1007.  INLINE $303C,$AE,$AAAA;
  1008.  
  1009. FUNCTION GetTimeBaseFlags(tb: TimeBase): LONGINT;
  1010.  INLINE $303C,$B1,$AAAA;
  1011. PROCEDURE SetTimeBaseFlags(tb: TimeBase;timeBaseFlags: LONGINT);
  1012.  INLINE $303C,$B2,$AAAA;
  1013.  
  1014. PROCEDURE SetTimeBaseMasterTimeBase(slave: TimeBase;master: TimeBase;slaveZero: TimeRecord);
  1015.  INLINE $303C,$B4,$AAAA;
  1016. FUNCTION GetTimeBaseMasterTimeBase(tb: TimeBase): TimeBase;
  1017.  INLINE $303C,$AF,$AAAA;
  1018. PROCEDURE SetTimeBaseMasterClock(slave: TimeBase;clockMeister: Component;
  1019.  slaveZero: TimeRecord);
  1020.  INLINE $303C,$B3,$AAAA;
  1021. FUNCTION GetTimeBaseMasterClock(tb: TimeBase): ComponentInstance;
  1022.  INLINE $303C,$B0,$AAAA;
  1023.  
  1024. PROCEDURE ConvertTime(VAR inout: TimeRecord;newBase: TimeBase);
  1025.  INLINE $303C,$B5,$AAAA;
  1026. PROCEDURE ConvertTimeScale(VAR inout: TimeRecord;newScale: TimeScale);
  1027.  INLINE $303C,$B7,$AAAA;
  1028. PROCEDURE AddTime(VAR dst: TimeRecord;src: TimeRecord);
  1029.  INLINE $303C,$10C,$AAAA;
  1030. PROCEDURE SubtractTime(VAR dst: TimeRecord;src: TimeRecord);
  1031.  INLINE $303C,$10D,$AAAA;
  1032.  
  1033. FUNCTION GetTimeBaseStatus(tb: TimeBase;VAR unpinnedTime: TimeRecord): LONGINT;
  1034.  INLINE $303C,$10B,$AAAA;
  1035.  
  1036. PROCEDURE SetTimeBaseZero(tb: TimeBase;VAR zero: TimeRecord);
  1037.  INLINE $303C,$128,$AAAA;
  1038.  
  1039.  
  1040. {  CallBack Routines  }
  1041. FUNCTION NewCallBack(tb: TimeBase;qtType: INTEGER): QTCallBack;
  1042.  INLINE $303C,$EB,$AAAA;
  1043.  
  1044. PROCEDURE DisposeCallBack(qtCall: QTCallBack);
  1045.  INLINE $303C,$EC,$AAAA;
  1046.  
  1047. FUNCTION GetCallBackType(qtCall: QTCallBack): INTEGER;
  1048.  INLINE $303C,$ED,$AAAA;
  1049. FUNCTION GetCallBackTimeBase(qtCall: QTCallBack): TimeBase;
  1050.  INLINE $303C,$EE,$AAAA;
  1051.  
  1052. FUNCTION CallMeWhen(qtCall: QTCallBack;callBackProc: QTCallBackProc;refCon: LONGINT;
  1053.  param1: LONGINT;param2: LONGINT;param3: LONGINT): OSErr;
  1054.  INLINE $303C,$B8,$AAAA;
  1055.  
  1056. PROCEDURE CancelCallBack(cb: QTCallBack);
  1057.  INLINE $303C,$B9,$AAAA;
  1058.  
  1059.  
  1060. {  Clock CallBack support Routines  }
  1061. FUNCTION AddCallBackToTimeBase(cb: QTCallBack): OSErr;
  1062.  INLINE $303C,$129,$AAAA;
  1063. FUNCTION RemoveCallBackFromTimeBase(cb: QTCallBack): OSErr;
  1064.  INLINE $303C,$12A,$AAAA;
  1065. FUNCTION GetFirstCallBack(tb: TimeBase): QTCallBack;
  1066.  INLINE $303C,$12B,$AAAA;
  1067. FUNCTION GetNextCallBack(cb: QTCallBack): QTCallBack;
  1068.  INLINE $303C,$12C,$AAAA;
  1069. PROCEDURE ExecuteCallBack(cb: QTCallBack);
  1070.  INLINE $303C,$12D,$AAAA;
  1071.  
  1072. CONST
  1073.  
  1074. { Movie Controller Routines }
  1075. mcActionIdle = 1;
  1076. mcActionDraw = 2;
  1077. mcActionActivate = 3;
  1078. mcActionDeactivate = 4;
  1079. mcActionMouseDown = 5;
  1080. mcActionKey = 6;
  1081. mcActionStop = 7;
  1082. mcActionPlay = 8;
  1083. mcActionPlayBackwards = 9;
  1084. mcActionGotoStart = 10;
  1085. mcActionGotoEnd = 11;
  1086. mcActionGotoTime = 12;
  1087. mcActionMuteToggle = 13;
  1088. mcActionSetVolume = 14;
  1089. mcActionSetRate = 15;
  1090. mcActionIncreaseRate = 16;
  1091. mcActionDecreaseRate = 17;
  1092. mcActionStepForward = 18;
  1093. mcActionStepBackward = 19;
  1094. mcActionToggleLooping = 20;
  1095. mcActionSetLooping = 21;
  1096. mcActionGetLooping = 22;
  1097. mcActionSetLoopIsPalindrome = 23;
  1098. mcActionGetLoopIsPalindrome = 24;
  1099. mcActionSetGrowBoxBounds = 25;
  1100. mcActionControllerSizeChanged = 26;
  1101. mcActionIncreaseVolume = 27;
  1102. mcActionDecreaseVolume = 28;
  1103. mcActionSetSelectionBegin = 29;
  1104. mcActionSetSelectionEnd = 30;
  1105. mcActionSetPosterTime = 31;
  1106. mcActionSetKeysEnabled = 32;
  1107. mcActionGetKeysEnabled = 33;
  1108. mcActionSetPlaySelection = 34;
  1109. mcActionGetPlaySelection = 35;
  1110. mcActionSetUseBadge = 36;
  1111. mcActionGetUseBadge = 37;
  1112. mcActionSetFlags = 38;
  1113. mcActionGetFlags = 39;
  1114. mcActionSetPlayEveryFrame = 40;
  1115. mcActionGetPlayEveryFrame = 41;
  1116.  
  1117. TYPE
  1118. mcAction = INTEGER;
  1119. MCActionFilter = ProcPtr;
  1120.  
  1121. CONST
  1122. mcTopLeftMovie = $1;
  1123. mcScaleMovieToFit = $2;
  1124. mcInfoUndoAvailable = $1;
  1125. mcInfoCutAvailable = $2;
  1126. mcInfoCopyAvailable = $4;
  1127. mcInfoPasteAvailable = $8;
  1128. mcInfoClearAvailable = $10;
  1129. mcInfoHasSound = $20;
  1130. mcInfoIsPlaying = $40;
  1131. mcInfoIsLooping = $80;
  1132. mcInfoIsInPalindrome = $100;
  1133. mcInfoEditingEnabled = $200;
  1134.  
  1135.  
  1136. {  target management  }
  1137. FUNCTION MCNewMovieController(m: Movie;movieRect: Rect;controllerCreationFlags: LONGINT): MovieController;
  1138.  INLINE $303C,$18A,$AAAA;
  1139. PROCEDURE MCDisposeMovieController(mc: MovieController);
  1140.  INLINE $303C,$18B,$AAAA;
  1141.  
  1142. FUNCTION MCAddMovie(mc: MovieController;m: Movie;movieWindow: WindowPtr;
  1143.  where: Point): ComponentResult;
  1144.  INLINE $2F3C,$C,$2,$7000,$A82A;
  1145. FUNCTION MCRemoveMovie(mc: MovieController;m: Movie): ComponentResult;
  1146.  INLINE $2F3C,$4,$3,$7000,$A82A;
  1147. FUNCTION MCCountMovies(mc: MovieController): LONGINT;
  1148.  INLINE $2F3C,$0,$4,$7000,$A82A;
  1149. FUNCTION MCGetIndMovie(mc: MovieController;index: INTEGER): Movie;
  1150.  INLINE $2F3C,$2,$5,$7000,$A82A;
  1151. FUNCTION MCRemoveAllMovies(mc: MovieController): ComponentResult;
  1152.  INLINE $2F3C,$0,$6,$7000,$A82A;
  1153.  
  1154.  
  1155. {  event handling etc.  }
  1156. FUNCTION MCIsPlayerEvent(mc: MovieController;e: EventRecord): ComponentResult;
  1157.  INLINE $2F3C,$4,$7,$7000,$A82A;
  1158. FUNCTION MCSetActionFilter(mc: MovieController;filter: MCActionFilter);
  1159.  INLINE $2F3C,$4,$8,$7000,$A82A;
  1160. FUNCTION MCDoAction(mc: MovieController;action: INTEGER;params: Ptr): ComponentResult;
  1161.  INLINE $2F3C,$6,$9,$7000,$A82A;
  1162.  
  1163.  
  1164. {  state type things  }
  1165. FUNCTION MCSetControllerAttached(mc: MovieController;attach: BOOLEAN): ComponentResult;
  1166.  INLINE $2F3C,$2,$A,$7000,$A82A;
  1167. FUNCTION MCIsControllerAttached(mc: MovieController): ComponentResult;
  1168.  INLINE $2F3C,$0,$B,$7000,$A82A;
  1169. FUNCTION MCSetControllerPort(mc: MovieController;gp: CGrafPtr): ComponentResult;
  1170.  INLINE $2F3C,$4,$C,$7000,$A82A;
  1171. FUNCTION MCGetControllerPort(mc: MovieController): CGrafPtr;
  1172.  INLINE $2F3C,$0,$D,$7000,$A82A;
  1173.  
  1174. FUNCTION MCShowHide(mc: MovieController;show: BOOLEAN): ComponentResult;
  1175.  INLINE $2F3C,$2,$E,$7000,$A82A;
  1176. FUNCTION MCIsShowing(mc: MovieController): ComponentResult;
  1177.  INLINE $2F3C,$0,$F,$7000,$A82A;
  1178.  
  1179. FUNCTION MCGetControllerBoundsRect(mc: MovieController;VAR bounds: Rect): ComponentResult;
  1180.  INLINE $2F3C,$4,$10,$7000,$A82A;
  1181. FUNCTION MCSetControllerBoundsRect(mc: MovieController;bounds: Rect): ComponentResult;
  1182.  INLINE $2F3C,$4,$11,$7000,$A82A;
  1183. FUNCTION MCGetControllerBoundsRgn(mc: MovieController): RgnHandle;
  1184.  INLINE $2F3C,$0,$12,$7000,$A82A;
  1185. FUNCTION MCGetWindowRgn(mc: MovieController;w: WindowPtr): RgnHandle;
  1186.  INLINE $2F3C,$4,$13,$7000,$A82A;
  1187.  
  1188.  
  1189. {  other stuff  }
  1190. FUNCTION MCMovieChanged(mc: MovieController;m: Movie): ComponentResult;
  1191.  INLINE $2F3C,$4,$14,$7000,$A82A;
  1192. FUNCTION MCSetDuration(mc: MovieController;duration: TimeValue): ComponentResult;
  1193.  INLINE $2F3C,$4,$15,$7000,$A82A;
  1194. FUNCTION MCGetCurrentTime(mc: MovieController;VAR scale: TimeScale): TimeValue;
  1195.  INLINE $2F3C,$4,$16,$7000,$A82A;
  1196. FUNCTION MCNewAttachedController(mc: MovieController;m: Movie;w: WindowPtr;
  1197.  where: Point): ComponentResult;
  1198.  INLINE $2F3C,$C,$17,$7000,$A82A;
  1199. FUNCTION MCPositionController(mc: MovieController;VAR movieRect: Rect;VAR controllerRect: Rect;
  1200.  controllerCreationFlags: LONGINT): ComponentResult;
  1201.  INLINE $2F3C,$C,$24,$7000,$A82A;
  1202.  
  1203.  
  1204. {  direct event handlers  }
  1205. FUNCTION MCDraw(mc: MovieController;w: WindowPtr): ComponentResult;
  1206.  INLINE $2F3C,$4,$18,$7000,$A82A;
  1207. FUNCTION MCActivate(mc: MovieController;w: WindowPtr;activate: BOOLEAN): ComponentResult;
  1208.  INLINE $2F3C,$6,$19,$7000,$A82A;
  1209. FUNCTION MCIdle(mc: MovieController): ComponentResult;
  1210.  INLINE $2F3C,$0,$1A,$7000,$A82A;
  1211. FUNCTION MCKey(mc: MovieController;key: Byte;modifiers: LONGINT): ComponentResult;
  1212.  INLINE $2F3C,$6,$1B,$7000,$A82A;
  1213. FUNCTION MCClick(mc: MovieController;w: WindowPtr;where: Point;when: LONGINT;
  1214.  modifiers: LONGINT): ComponentResult;
  1215.  INLINE $2F3C,$10,$1C,$7000,$A82A;
  1216.  
  1217.  
  1218. {   calls for editing  }
  1219. FUNCTION MCEnableEditing(mc: MovieController;enabled: BOOLEAN): ComponentResult;
  1220.  INLINE $2F3C,$2,$1D,$7000,$A82A;
  1221. FUNCTION MCIsEditingEnabled(mc: MovieController): LONGINT;
  1222.  INLINE $2F3C,$0,$1E,$7000,$A82A;
  1223. FUNCTION MCCopy(mc: MovieController): Movie;
  1224.  INLINE $2F3C,$0,$1F,$7000,$A82A;
  1225. FUNCTION MCCut(mc: MovieController): Movie;
  1226.  INLINE $2F3C,$0,$20,$7000,$A82A;
  1227. FUNCTION MCPaste(mc: MovieController;srcMovie: Movie): ComponentResult;
  1228.  INLINE $2F3C,$4,$21,$7000,$A82A;
  1229. FUNCTION MCClear(mc: MovieController): ComponentResult;
  1230.  INLINE $2F3C,$0,$22,$7000,$A82A;
  1231. FUNCTION MCUndo(mc: MovieController): ComponentResult;
  1232.  INLINE $2F3C,$0,$23,$7000,$A82A;
  1233.  
  1234.  
  1235. {  menu related stuff  }
  1236. FUNCTION MCGetControllerInfo(mc: MovieController;VAR mcInfoFlags: LONGINT): ComponentResult;
  1237.  INLINE $2F3C,$4,$25,$7000,$A82A;
  1238.  
  1239.  
  1240. FUNCTION MCSetClip(mc:MovieController;theClip: RgnHandle;movieClip:RgnHandle):ComponentResult;
  1241. INLINE $2f3c,8,40,$7000,$a82a;
  1242. FUNCTION MCGetClip(mc:MovieController;VAR theClip: RgnHandle;VAR movieClip:RgnHandle):ComponentResult;
  1243. INLINE $2f3c,8,41,$7000,$a82a;
  1244.  
  1245. FUNCTION MCDrawBadge(mc:MovieController;movieRgn:RgnHandle;VAR badgeRgn:RgnHandle):ComponentResult;
  1246. INLINE $2f3c,8,42,$7000,$a82a;
  1247.  
  1248.  
  1249.  
  1250. CONST
  1251.  
  1252. { movie controller error codes }
  1253. cannotMoveAttachedController = -9999;
  1254. controllerHasFixedHeight = -9998;
  1255. cannotSetWidthOfAttachedController = -9997;
  1256. controllerBoundsNotExact = -9996;
  1257. editingNotAllowed = -9995;
  1258. badControllerHeight = -9994;
  1259.  
  1260.  
  1261. {$ENDC} { UsingMovies }
  1262.  
  1263. {$IFC NOT UsingIncludes}
  1264.  END.
  1265. {$ENDC}
  1266.  
  1267.